<!-- HTML header for doxygen 1.8.14-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Unity ML-Agents Toolkit: Unity.MLAgents Namespace Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygenbase.css" rel="stylesheet" type="text/css" />
<link href="unity.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Unity ML-Agents Toolkit
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('namespaceUnity_1_1MLAgents.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#namespaces">Namespaces</a> &#124;
<a href="#nested-classes">Classes</a> &#124;
<a href="#enum-members">Enumerations</a>  </div>
  <div class="headertitle">
<div class="title">Unity.MLAgents Namespace Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Welcome to <a class="el" href="namespaceUnity.html">Unity</a> Machine Learning Agents (ML-Agents).  
<a href="namespaceUnity_1_1MLAgents.html#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceUnity_1_1MLAgents_1_1CommunicatorObjects"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceUnity_1_1MLAgents_1_1CommunicatorObjects.html">CommunicatorObjects</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:namespaceUnity_1_1MLAgents_1_1Demonstrations"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceUnity_1_1MLAgents_1_1Demonstrations.html">Demonstrations</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:namespaceUnity_1_1MLAgents_1_1Inference"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceUnity_1_1MLAgents_1_1Inference.html">Inference</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:namespaceUnity_1_1MLAgents_1_1Policies"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceUnity_1_1MLAgents_1_1Policies.html">Policies</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:namespaceUnity_1_1MLAgents_1_1Sensors"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceUnity_1_1MLAgents_1_1Sensors.html">Sensors</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:namespaceUnity_1_1MLAgents_1_1SideChannels"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceUnity_1_1MLAgents_1_1SideChannels.html">SideChannels</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><b>AcademyFixedUpdateStepper</b></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper class to step the <a class="el" href="classUnity_1_1MLAgents_1_1Academy.html" title="The Academy singleton manages agent training and decision making.">Academy</a> during FixedUpdate phase. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classUnity_1_1MLAgents_1_1Academy.html">Academy</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The <a class="el" href="classUnity_1_1MLAgents_1_1Academy.html" title="The Academy singleton manages agent training and decision making.">Academy</a> singleton manages agent training and decision making.  <a href="classUnity_1_1MLAgents_1_1Academy.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:structUnity_1_1MLAgents_1_1AgentInfo"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><b>AgentInfo</b></td></tr>
<tr class="memdesc:structUnity_1_1MLAgents_1_1AgentInfo"><td class="mdescLeft">&#160;</td><td class="mdescRight">Struct that contains all the information for an <a class="el" href="classUnity_1_1MLAgents_1_1Agent.html" title="An agent is an actor that can observe its environment, decide on the best course of action using thos...">Agent</a>, including its observations, actions and current status. <br /></td></tr>
<tr class="separator:structUnity_1_1MLAgents_1_1AgentInfo"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:structUnity_1_1MLAgents_1_1AgentAction"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><b>AgentAction</b></td></tr>
<tr class="memdesc:structUnity_1_1MLAgents_1_1AgentAction"><td class="mdescLeft">&#160;</td><td class="mdescRight">Struct that contains the action information sent from the Brain to the <a class="el" href="classUnity_1_1MLAgents_1_1Agent.html" title="An agent is an actor that can observe its environment, decide on the best course of action using thos...">Agent</a>. <br /></td></tr>
<tr class="separator:structUnity_1_1MLAgents_1_1AgentAction"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classUnity_1_1MLAgents_1_1Agent.html">Agent</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">An agent is an actor that can observe its environment, decide on the best course of action using those observations, and execute those actions within the environment.  <a href="classUnity_1_1MLAgents_1_1Agent.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><b>GrpcExtensions</b></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:structUnity_1_1MLAgents_1_1CommunicatorInitParameters"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><b>CommunicatorInitParameters</b></td></tr>
<tr class="separator:structUnity_1_1MLAgents_1_1CommunicatorInitParameters"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:structUnity_1_1MLAgents_1_1UnityRLInitParameters"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><b>UnityRLInitParameters</b></td></tr>
<tr class="separator:structUnity_1_1MLAgents_1_1UnityRLInitParameters"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:structUnity_1_1MLAgents_1_1UnityRLInputParameters"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><b>UnityRLInputParameters</b></td></tr>
<tr class="separator:structUnity_1_1MLAgents_1_1UnityRLInputParameters"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">interface &#160;</td><td class="memItemRight" valign="bottom"><b>ICommunicator</b></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the interface of the Communicators. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><b>RpcCommunicator</b></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Responsible for communication with External using gRPC. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><b>UnityRLCapabilities</b></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classUnity_1_1MLAgents_1_1DecisionRequester.html">DecisionRequester</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The <a class="el" href="classUnity_1_1MLAgents_1_1DecisionRequester.html" title="The DecisionRequester component automatically request decisions for an Agent instance at regular inte...">DecisionRequester</a> component automatically request decisions for an <a class="el" href="classUnity_1_1MLAgents_1_1Agent.html" title="An agent is an actor that can observe its environment, decide on the best course of action using thos...">Agent</a> instance at regular intervals.  <a href="classUnity_1_1MLAgents_1_1DecisionRequester.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classUnity_1_1MLAgents_1_1DiscreteActionMasker.html">DiscreteActionMasker</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The <a class="el" href="classUnity_1_1MLAgents_1_1DiscreteActionMasker.html" title="The DiscreteActionMasker class represents a set of masked (disallowed) actions and provides utilities...">DiscreteActionMasker</a> class represents a set of masked (disallowed) actions and provides utilities for setting and retrieving them.  <a href="classUnity_1_1MLAgents_1_1DiscreteActionMasker.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classUnity_1_1MLAgents_1_1EnvironmentParameters.html">EnvironmentParameters</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A container for the Environment Parameters that may be modified during training.  <a href="classUnity_1_1MLAgents_1_1EnvironmentParameters.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><b>EpisodeIdCounter</b></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><b>SamplerFactory</b></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Takes a list of floats that encode a sampling distribution and returns the sampling function. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classUnity_1_1MLAgents_1_1StatsRecorder.html">StatsRecorder</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add stats (key-value pairs) for reporting.  <a href="classUnity_1_1MLAgents_1_1StatsRecorder.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><b>TimerNode</b></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><b>RootNode</b></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><b>GaugeNode</b></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tracks the most recent value of a metric. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><b>TimerStack</b></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A "stack" of timers that allows for lightweight hierarchical profiling of long-running processes. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classUnity_1_1MLAgents_1_1UnityAgentsException.html">UnityAgentsException</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Contains exceptions specific to ML-Agents.  <a href="classUnity_1_1MLAgents_1_1UnityAgentsException.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><b>Utilities</b></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:a80103f71f45f57ae6e9168dbe914f9ff"><td class="memItemLeft" align="right" valign="top">enum class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceUnity_1_1MLAgents.html#a80103f71f45f57ae6e9168dbe914f9ff">StatAggregationMethod</a> { <a class="el" href="namespaceUnity_1_1MLAgents.html#a80103f71f45f57ae6e9168dbe914f9ffab1897515d548a960afe49ecf66a29021">Average</a> = 0
, <a class="el" href="namespaceUnity_1_1MLAgents.html#a80103f71f45f57ae6e9168dbe914f9ffa1f7eef9de38738e79be7905c6067c98f">MostRecent</a> = 1
 }</td></tr>
<tr class="memdesc:a80103f71f45f57ae6e9168dbe914f9ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines the behavior of how multiple stats within the same summary period are combined.  <a href="namespaceUnity_1_1MLAgents.html#a80103f71f45f57ae6e9168dbe914f9ff">More...</a><br /></td></tr>
<tr class="separator:a80103f71f45f57ae6e9168dbe914f9ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Welcome to <a class="el" href="namespaceUnity.html">Unity</a> Machine Learning Agents (ML-Agents). </p>
<p>The ML-Agents toolkit contains four entities: <a class="el" href="classUnity_1_1MLAgents_1_1Academy.html" title="The Academy singleton manages agent training and decision making.">Academy</a>, <a class="el" href="classUnity_1_1MLAgents_1_1Agent.html" title="An agent is an actor that can observe its environment, decide on the best course of action using thos...">Agent</a>, Communicator and Python API. The academy and connected agents live within a learning environment (herein called Environment), while the communicator manages the communication between the learning environment and the Python API. For more information on each of these entities, in addition to how to set-up a learning environment and train the behavior of characters in a <a class="el" href="namespaceUnity.html">Unity</a> scene, please browse our documentation pages on GitHub: <a href="https://github.com/Unity-Technologies/ml-agents/tree/release_6_docs/docs/">https://github.com/Unity-Technologies/ml-agents/tree/release_6_docs/docs/</a> </p>
</div><h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="a80103f71f45f57ae6e9168dbe914f9ff"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a80103f71f45f57ae6e9168dbe914f9ff">&#9670;&nbsp;</a></span>StatAggregationMethod</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="namespaceUnity_1_1MLAgents.html#a80103f71f45f57ae6e9168dbe914f9ff">StatAggregationMethod</a></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">strong</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determines the behavior of how multiple stats within the same summary period are combined. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a80103f71f45f57ae6e9168dbe914f9ffab1897515d548a960afe49ecf66a29021"></a>Average&#160;</td><td class="fielddoc"><p>Values within the summary period are averaged before reporting. </p>
</td></tr>
<tr><td class="fieldname"><a id="a80103f71f45f57ae6e9168dbe914f9ffa1f7eef9de38738e79be7905c6067c98f"></a>MostRecent&#160;</td><td class="fielddoc"><p>Only the most recent value is reported. </p>
<p>To avoid conflicts when training with multiple concurrent environments, only stats from worker index 0 will be tracked.</p>
</td></tr>
</table>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.14-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="namespaceUnity.html">Unity</a></li><li class="navelem"><a class="el" href="namespaceUnity_1_1MLAgents.html">MLAgents</a></li>
  </ul>
</div>
</body>
</html>
